package cn.iocoder.yudao.module.system.dal.mysql.user;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.dept.UserPostDO;
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDeptDO;
import org.apache.ibatis.annotations.Mapper;

import java.util.Collection;
import java.util.List;

@Mapper
public interface UserDeptMapper extends BaseMapperX<UserDeptDO> {


    default List<UserDeptDO> selectList(UserDeptDO userDeptDO) {
        return selectList(new LambdaQueryWrapperX<UserDeptDO>()
                .eqIfPresent(UserDeptDO::getId,userDeptDO.getId())
                .eqIfPresent(UserDeptDO::getDeptId,userDeptDO.getDeptId())
                .eqIfPresent(UserDeptDO::getUserId,userDeptDO.getUserId())
                .eqIfPresent(UserDeptDO::getUserDeptType,userDeptDO.getUserDeptType()));
    }


    default void deleteByUserIdAndTenantId(Long userId, Long tenantId) {
        delete(new LambdaQueryWrapperX<UserDeptDO>()
                .eq(UserDeptDO::getUserId, userId)
                .eqIfPresent(UserDeptDO::getTenantId,tenantId));
    }


    default List<UserDeptDO> selectListByDeptIds(Collection<Long> deptIds) {
        return selectList(UserDeptDO::getDeptId, deptIds);
    }


}
